declare var tt;
declare var wx;

import { _decorator, Component, Node } from 'cc';
import { DyAdMgr } from './DyAdMgr';
import { WxAdMgr } from './WxAdMgr';
import { Global } from '../Global';
const { ccclass, property } = _decorator;

/**
 * 定义广告信息接口
 * @param 激励广告id
 * @param //Banner广告id
 * @param 格子广告id
 */
type AdInfor = {
    Video: string[],
    Banner: string,
    Gird: string
}

@ccclass('AdMgr')
/**
 * 广告管理系统
 */
export class AdMgr {

    //单例
    private static _Instance: AdMgr = null;

    //
    public static get Instance(): AdMgr {
        if (!this._Instance) this._Instance = new AdMgr();
        return this._Instance;
    }

    //是否是抖音模式
    public DyAdMgr: DyAdMgr = null;

    //是否是微信模式
    public WxAdMgr: WxAdMgr = null;

    //广告信息配置
    public AdInfor: AdInfor = {
        Video: [],
        Banner: null,
        Gird: null
    }


    /**
     * 广告信息初始化
     */
    public Init() {
        //如果是抖音环境
        if (Global.IsDy) {
            tt.onShow((res) => {
                if (res.scene == "021036") {//侧边栏进入得

                }
            })

            this.DyAdMgr = new DyAdMgr();
            this.DyAdMgr.Init(this.AdInfor);
        }

        //如果是微信环境
        if (Global.IsWx) {
            this.WxAdMgr = new WxAdMgr();
            this.WxAdMgr.Init(this.AdInfor);
        }
    }

    /**
     * 显示激励广告视频
     * @param 广告索引
     * @param 回调方法
     */
    public ShowVideo(_adidindex: number, _cb: Function) {
        if (Global.IsWx) {
            this.WxAdMgr.ShowVideo(this.AdInfor.Video[_adidindex], _cb);
            return;
        };

        if (Global.IsDy) {
            this.DyAdMgr.ShowVideo(this.AdInfor.Video[_adidindex], _cb);
            return;
        }

        _cb(true);//不是小游戏环境直接获取奖励
    }

    /**
     * 显示banner广告
     * @param 显示/隐藏
     */
    public ShowBanner(_isshow: boolean) {
        if (Global.IsWx) this.WxAdMgr.ShowBannerAd(_isshow);
        if (Global.IsDy) this.DyAdMgr.ShowBannerAd(_isshow);

    }

    /**
     * 显示格子广告
     * @param 显示/隐藏
     */
    public ShowGird(_isshow: boolean) {
        if (Global.IsWx) this.WxAdMgr.ShowGridAd(_isshow);
        if (Global.IsDy) this.DyAdMgr.ShowGridAd(_isshow);
    }



}


